package com.hnu.store.service;

import com.hnu.store.dto.NftDTO;
import com.hnu.store.dto.SaleDTO;
import com.hnu.store.entity.Sale;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

public interface ISaleService {

    /**
     * 根据用户ID获取售单列表
     * @param userId 用户ID
     * @param stringPara 参数
     * @param status 状态
     */
    List<SaleDTO> getSaleListById(Integer userId, String stringPara, String status);

    /**
     * 根据售单id获取售单
     * @param saleId 售单ID
     */
    SaleDTO getSaleById(Integer saleId);

    /**
     * 获取所有售单
     */
    List<SaleDTO> getAllSaleList();

    /**
     * 添加售单
     * @param sale 售单信息
     */
    void addSale(Sale sale);

    /**
     * 获取图片
     * @param filePath 文件路径
     * @param fileName 文件名称
     * @param response HTTP响应体
     */
    void getImg(String filePath,String fileName,HttpServletResponse response);

    /**
     * 改变售单状态
     * @param id 售单ID
     * @param status 售单状态
     */
    Sale changeStatus(Integer id,Integer status);

    /**
     * 获取NFT列表
     * @param userId 用户ID
     */
    List<NftDTO> getNftList(Integer userId);

    /**
     * 删除售单
     * @param id 售单ID
     */
    void deleteSale(Integer id);

    /**
     * 编辑售单
     * @param sale 售单信息
     */
    void editSale(Sale sale);

    /**
     * 管理员获取所有售单
     */
    List<SaleDTO> adminGetAllSale();

    /**
     * 根据商品类型获取售单
     * @param id 用户ID
     * @param goodsType 商品类型
     */
    List<SaleDTO> getSaleByGoodsType(Integer id,String goodsType);

    /**
     * 根据售单类型获取售单
     * @param id 用户ID
     * @param saleType 售单类型
     *
     */
    List<SaleDTO> getSaleBySaleType(Integer id,String saleType);

    /**
     * 搜索售单
     * @param id 用户ID
     * @param sortPara 搜索条件
     */
    List<SaleDTO> search(Integer id,String sortPara);

    /**
     *
     * @param userId 用户ID
     */
    List<SaleDTO> post(Integer userId);

    /**
     *
     * @param id
     */
    List<SaleDTO> saleForMall(Integer id);
}
